{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A Quick Overview of Pandas for Cheminformatics\n",
    "This notebook provides an overview of the Pandas library for data handling and manipulation in Python scripts."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Install the necessary Python libraries"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:55.904926Z",
     "start_time": "2025-05-05T16:54:55.902208Z"
    }
   },
   "source": [
    "%%capture\n",
    "import sys\n",
    "IN_COLAB = 'google.colab' in sys.modules\n",
    "if IN_COLAB:\n",
    "    !pip install pandas numpy seaborn"
   ],
   "outputs": [],
   "execution_count": 1
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Import the necessary Python libraries"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.059159Z",
     "start_time": "2025-05-05T16:54:56.057691Z"
    }
   },
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ],
   "outputs": [],
   "execution_count": 2
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Enable the display of plots from Pandas in a Jupyter notebook"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.069667Z",
     "start_time": "2025-05-05T16:54:56.062175Z"
    }
   },
   "source": [
    "%matplotlib inline"
   ],
   "outputs": [],
   "execution_count": 3
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reading Data From and SD File\n",
    "Read in a file containing data from hERG assays in the ChEMBL database"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.422371Z",
     "start_time": "2025-05-05T16:54:56.073596Z"
    }
   },
   "source": [
    "df = pd.read_csv(\"https://raw.githubusercontent.com/PatWalters/practical_cheminformatics_tutorials/main/data/ChEMBL_hERG.csv\")"
   ],
   "outputs": [],
   "execution_count": 4
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Examine the number of rows and columns in the dataframe"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.431941Z",
     "start_time": "2025-05-05T16:54:56.429649Z"
    }
   },
   "source": [
    "df.shape"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8989, 13)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 5
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Getting an Overview of the Data\n",
    "We can also look at datatype for each of the columns"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.444377Z",
     "start_time": "2025-05-05T16:54:56.441899Z"
    }
   },
   "source": [
    "df.dtypes"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "canonical_smiles      object\n",
       "molregno               int64\n",
       "mol_chembl_id         object\n",
       "standard_relation     object\n",
       "standard_value       float64\n",
       "standard_type         object\n",
       "standard_units        object\n",
       "description           object\n",
       "organism              object\n",
       "assay_type            object\n",
       "confidence_score       int64\n",
       "pref_name             object\n",
       "tgt_chembl_id         object\n",
       "dtype: object"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 6
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also use the \"columns\" method to look at the column names."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.474335Z",
     "start_time": "2025-05-05T16:54:56.472336Z"
    }
   },
   "source": [
    "df.columns"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['canonical_smiles', 'molregno', 'mol_chembl_id', 'standard_relation',\n",
       "       'standard_value', 'standard_type', 'standard_units', 'description',\n",
       "       'organism', 'assay_type', 'confidence_score', 'pref_name',\n",
       "       'tgt_chembl_id'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 7
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The \"describe\" method provides summary statistics for numeric columns. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.505949Z",
     "start_time": "2025-05-05T16:54:56.499714Z"
    }
   },
   "source": [
    "df.describe()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "           molregno  standard_value  confidence_score\n",
       "count  8.989000e+03    8.989000e+03       8989.000000\n",
       "mean   1.162010e+06    9.680188e+05          8.944599\n",
       "std    6.612153e+05    2.558712e+07          0.228774\n",
       "min    9.700000e+01    1.400000e-01          8.000000\n",
       "25%    5.569920e+05    1.880000e+03          9.000000\n",
       "50%    1.280901e+06    9.400000e+03          9.000000\n",
       "75%    1.748621e+06    2.900000e+04          9.000000\n",
       "max    2.196506e+06    1.000000e+09          9.000000"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>molregno</th>\n",
       "      <th>standard_value</th>\n",
       "      <th>confidence_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>8.989000e+03</td>\n",
       "      <td>8.989000e+03</td>\n",
       "      <td>8989.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1.162010e+06</td>\n",
       "      <td>9.680188e+05</td>\n",
       "      <td>8.944599</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>6.612153e+05</td>\n",
       "      <td>2.558712e+07</td>\n",
       "      <td>0.228774</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>9.700000e+01</td>\n",
       "      <td>1.400000e-01</td>\n",
       "      <td>8.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>5.569920e+05</td>\n",
       "      <td>1.880000e+03</td>\n",
       "      <td>9.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>1.280901e+06</td>\n",
       "      <td>9.400000e+03</td>\n",
       "      <td>9.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>1.748621e+06</td>\n",
       "      <td>2.900000e+04</td>\n",
       "      <td>9.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.196506e+06</td>\n",
       "      <td>1.000000e+09</td>\n",
       "      <td>9.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 8
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Converting Datatypes\n",
    "Note that Pandas thinks that the molregno column is an integer.  This is not what we want, we want this column to be a string.  Let's fix it. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.535385Z",
     "start_time": "2025-05-05T16:54:56.531809Z"
    }
   },
   "source": [
    "df.molregno = df.molregno.apply(str)\n",
    "df.dtypes"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "canonical_smiles      object\n",
       "molregno              object\n",
       "mol_chembl_id         object\n",
       "standard_relation     object\n",
       "standard_value       float64\n",
       "standard_type         object\n",
       "standard_units        object\n",
       "description           object\n",
       "organism              object\n",
       "assay_type            object\n",
       "confidence_score       int64\n",
       "pref_name             object\n",
       "tgt_chembl_id         object\n",
       "dtype: object"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 9
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Finding Duplicate Molecules\n",
    "Recall that our dataframe contains 8989 rows.  Let's see how many unique molregno values are in the dataframe.  Duplicate molregno values will be same molecule, so we'll average the values for those molecules."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.577970Z",
     "start_time": "2025-05-05T16:54:56.575642Z"
    }
   },
   "source": [
    "len(df.molregno.unique())"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7438"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 10
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Examining Assay Types\n",
    "The dataframe contains two types of assays, binding assays (B), and functional assays (F).  Let's make a bar chart to see how many of each are in the dataframe. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.666281Z",
     "start_time": "2025-05-05T16:54:56.616808Z"
    }
   },
   "source": [
    "df.assay_type.value_counts().plot(kind='bar')"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='assay_type'>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGqCAYAAAAodh+xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIOFJREFUeJzt3X1QlXX+//HX4U4QFI6xX29mtGYD1612EjURK5qlyNlQR49YbWTRejeo3e2UbUnp6uLNb5pSZhPLdJk267uBaZE32XazKiuELaOTmwZtN7QuIggEB1Fuzu8Pf5xffM2vUNJ5w3k+ZvjjnM914efiXFw8ua7Lg8Pj8XgEAABgWICvJwAAAHAxBAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5Qb6ewKVWU9Mg3ru373M4pMsuG8DrDfRBfH/7l47X+2L6XLB4PGIH9yO83kDfxfc3vo1LQgAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5Qb6eAH64gACHAgIcvp6GTwQG+l9zt7d71N7u8fU0AOBHRbD0cgEBDkVG9VeQH/7gliSnM9zXU/jRtba1q76uiWgB4FcIll4uIMChoMAAPfjfpSqvavT1dNDDYv4rQuvujFNAgINgAeBXCJY+oryqUUeOf+PraQAA0CP88zoCAADoVQgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA87odLEeOHFFaWprGjRunG264QX/4wx909uxZSdKhQ4c0c+ZMxcXFKSkpSXl5eZ3W3bZtm5KTkzV69Gi5XC6VlpZ6x9ra2rRmzRpNnDhRcXFxysjIUFVV1Q/cPAAA0Bd0K1ja29s1f/58TZo0SR9++KHy8/O1f/9+bdy4UfX19Zo3b56mTZumkpISZWVladWqVTp8+LAkqbi4WCtWrNDq1atVUlKiqVOnKiMjQ6dPn5Yk5eTkqLCwUFu3btW+ffsUGhqqzMzMS7/FAACg1+lWsNTX1+vkyZNqb2+Xx+M59wkCAhQWFqY9e/YoKipKaWlpCgoKUkJCgqZMmaItW7ZIkvLy8pSSkqKxY8cqODhY6enpcjqd2rlzp3d87ty5Gjp0qCIiIrRkyRLt3btXFRUVl3iTAQBAb9OtYHE6nUpPT9eaNWv0i1/8QjfddJOuuOIKpaenq6ysTCNHjuy0fExMjI4ePSpJKi8vv+B4Q0ODKisrO41HR0crMjJSx44d69YGORz+9QH/5et9jw8+evKDfdy/ProiqDsHyPb2doWGhurJJ59UamqqvvzySy1atEjZ2dlyu90KCwvrtHxoaKiampok6X8dd7vdkqT+/fufN94x1lWXXTagW8sDvZHTGe7rKQA9juM5vq1bwfLOO+/o7bff1u7duyVJsbGxWrhwobKysjRlyhQ1NDR0Wr65uVnh4ecOrGFhYWpubj5v3Ol0ekOm436W71q/q2pqGvT/rlb5hcDAAH54+aHaWrfa2tp9PQ2gRzgc52LF347n/qrj9b6YbgXLf/7zH+//CPJ+gqAgBQcHa+TIkSosLOw0Vl5ertjYWEnn4qasrOy88cTEREVGRmrw4MGdLhudPHlSdXV1511GuhiPR+zg8Avs5+jrOJ7j27p1D8sNN9ygkydPasOGDWpra1NFRYVycnI0ZcoUJScnq7q6Wrm5uWppaVFRUZEKCgo0Y8YMSVJqaqoKCgpUVFSklpYW5ebmqqamRsnJyZIkl8ulnJwcVVRUqLGxUStXrtT48eM1YsSIS7/VAACgV+nWGZaYmBg9//zzWrt2rV588UUNGDBAU6dO1cKFCxUSEqLNmzcrKytL2dnZGjRokDIzMzVhwgRJUkJCgpYuXaply5bpxIkTiomJ0caNGxUVFSVJWrhwoVpbW5WWlia32634+HitXbv2Um8vAADohRweT9864VZd7V/XPIOCzt3DkpK9T0eOf+Pr6aCHXT1soHY8cKNqa91qbeUeFvRNDocUHT3A747n/qrj9b4Y3pofAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMK/bwVJXV6fFixcrPj5e1113nRYsWKCqqipJ0qFDhzRz5kzFxcUpKSlJeXl5ndbdtm2bkpOTNXr0aLlcLpWWlnrH2tratGbNGk2cOFFxcXHKyMjwfl4AAODfuh0s999/v5qamvTOO+/o/fffV2BgoJ588knV19dr3rx5mjZtmkpKSpSVlaVVq1bp8OHDkqTi4mKtWLFCq1evVklJiaZOnaqMjAydPn1akpSTk6PCwkJt3bpV+/btU2hoqDIzMy/t1gIAgF6pW8Hy8ccf69ChQ1q9erUGDhyoiIgIrVixQo888oj27NmjqKgopaWlKSgoSAkJCZoyZYq2bNkiScrLy1NKSorGjh2r4OBgpaeny+l0aufOnd7xuXPnaujQoYqIiNCSJUu0d+9eVVRUXPqtBgAAvUpQdxY+fPiwYmJi9Nprr+nVV1/V6dOndeONN+qxxx5TWVmZRo4c2Wn5mJgY5efnS5LKy8s1Y8aM88aPHj2qhoYGVVZWdlo/OjpakZGROnbsmIYPH97lOToc3dkioPdiX0df1bFvs4/7h66+zt0Klvr6eh07dkzXXHONtm3bpubmZi1evFiPPfaYoqOjFRYW1mn50NBQNTU1SZLcbvcFx91utySpf//+5413jHXVZZcN6NbyQG/kdIb7egpAj+N4jm/rVrCEhIRIkpYsWaJ+/fopIiJCDz30kG6//Xa5XC41Nzd3Wr65uVnh4ecOrGFhYd857nQ6vSHTcT/Ld63fVTU1DfJ4urVKrxYYGMAPLz9UW+tWW1u7r6cB9AiH41ys+Nvx3F91vN4X061giYmJUXt7u1paWtSvXz9JUnv7uYPmz3/+c73yyiudli8vL1dsbKwkKTY2VmVlZeeNJyYmKjIyUoMHD1Z5ebn3stDJkydVV1d33mWmi/F4xA4Ov8B+jr6O4zm+rVs33U6cOFHDhw/XE088IbfbrVOnTunZZ5/VLbfcosmTJ6u6ulq5ublqaWlRUVGRCgoKvPetpKamqqCgQEVFRWppaVFubq5qamqUnJwsSXK5XMrJyVFFRYUaGxu1cuVKjR8/XiNGjLj0Ww0AAHqVbp1hCQ4O1p///GetXr1akyZN0pkzZ5SUlKQlS5Zo4MCB2rx5s7KyspSdna1BgwYpMzNTEyZMkCQlJCRo6dKlWrZsmU6cOKGYmBht3LhRUVFRkqSFCxeqtbVVaWlpcrvdio+P19q1ay/19gIAgF7I4fH0rRNu1dX+dc0zKOjcPSwp2ft05Pg3vp4OetjVwwZqxwM3qrbWrdZW7mFB3+RwSNHRA/zueO6vOl7vi+Gt+QEAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzvlewtLW1adasWfrd737nfe7QoUOaOXOm4uLilJSUpLy8vE7rbNu2TcnJyRo9erRcLpdKS0s7fb41a9Zo4sSJiouLU0ZGhqqqqr7nJgEAgL7mewXLH//4Rx08eND7uL6+XvPmzdO0adNUUlKirKwsrVq1SocPH5YkFRcXa8WKFVq9erVKSko0depUZWRk6PTp05KknJwcFRYWauvWrdq3b59CQ0OVmZl5CTYPAAD0Bd0OlgMHDmjPnj269dZbvc/t2bNHUVFRSktLU1BQkBISEjRlyhRt2bJFkpSXl6eUlBSNHTtWwcHBSk9Pl9Pp1M6dO73jc+fO1dChQxUREaElS5Zo7969qqiouESbCQAAerOg7ixcU1OjJUuWaP369crNzfU+X1ZWppEjR3ZaNiYmRvn5+ZKk8vJyzZgx47zxo0ePqqGhQZWVlZ3Wj46OVmRkpI4dO6bhw4d3a4Mcjm4tDvRa7Ovoqzr2bfZx/9DV17nLwdLe3q5HH31U9913n0aNGtVpzO12KywsrNNzoaGhampquui42+2WJPXv3/+88Y6x7rjssgHdXgfobZzOcF9PAehxHM/xbV0Olueff14hISGaNWvWeWNhYWFqaGjo9Fxzc7PCw8O9483NzeeNO51Ob8h03M/yXet3R01Ngzyebq/WawUGBvDDyw/V1rrV1tbu62kAPcLhOBcr/nY891cdr/fFdDlY3njjDVVVVWncuHGS5A2Qv/71r1q8eLEKCws7LV9eXq7Y2FhJUmxsrMrKys4bT0xMVGRkpAYPHqzy8nLvZaGTJ0+qrq7uvMtMXeHxiB0cfoH9HH0dx3N8W5dvut29e7f+8Y9/6ODBgzp48KAmT56syZMn6+DBg0pOTlZ1dbVyc3PV0tKioqIiFRQUeO9bSU1NVUFBgYqKitTS0qLc3FzV1NQoOTlZkuRyuZSTk6OKigo1NjZq5cqVGj9+vEaMGNEzWw0AAHqVbt10eyFOp1ObN29WVlaWsrOzNWjQIGVmZmrChAmSpISEBC1dulTLli3TiRMnFBMTo40bNyoqKkqStHDhQrW2tiotLU1ut1vx8fFau3btpZgaAADoAxweT9864VZd7V/XPIOCzt3DkpK9T0eOf+Pr6aCHXT1soHY8cKNqa91qbeUeFvRNDocUHT3A747n/qrj9b4Y3pofAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMI9gAQAA5hEsAADAPIIFAACYR7AAAADzCBYAAGAewQIAAMwjWAAAgHkECwAAMK9bwXL06FHdd999Gj9+vK6//notXrxYp06dkiQdOnRIM2fOVFxcnJKSkpSXl9dp3W3btik5OVmjR4+Wy+VSaWmpd6ytrU1r1qzRxIkTFRcXp4yMDFVVVV2CzQMAAH1Bl4OlublZc+bMUVxcnPbv36+33npLdXV1euKJJ1RfX6958+Zp2rRpKikpUVZWllatWqXDhw9LkoqLi7VixQqtXr1aJSUlmjp1qjIyMnT69GlJUk5OjgoLC7V161bt27dPoaGhyszM7JktBgAAvU6Xg+X48eMaNWqUFi5cqJCQEDmdTt1xxx0qKSnRnj17FBUVpbS0NAUFBSkhIUFTpkzRli1bJEl5eXlKSUnR2LFjFRwcrPT0dDmdTu3cudM7PnfuXA0dOlQRERFasmSJ9u7dq4qKip7ZagAA0KsEdXXBn/70p3rxxRc7Pff222/r6quvVllZmUaOHNlpLCYmRvn5+ZKk8vJyzZgx47zxo0ePqqGhQZWVlZ3Wj46OVmRkpI4dO6bhw4d3a4Mcjm4tDvRa7Ovoqzr2bfZx/9DV17nLwfJtHo9Ha9eu1fvvv6+XX35ZL730ksLCwjotExoaqqamJkmS2+2+4Ljb7ZYk9e/f/7zxjrHuuOyyAd1eB+htnM5wX08B6HEcz/Ft3Q6WxsZGPf744zpy5Ihefvll/exnP1NYWJgaGho6Ldfc3Kzw8HMH1bCwMDU3N5837nQ6vSHTcT/Ld63fHTU1DfJ4ur1arxUYGMAPLz9UW+tWW1u7r6cB9AiH41ys+Nvx3F91vN4X061g+eqrrzR37lwNGzZM+fn5GjRokCRp5MiRKiws7LRseXm5YmNjJUmxsbEqKys7bzwxMVGRkZEaPHiwysvLvZeFTp48qbq6uvMuM3WFxyN2cPgF9nP0dRzP8W1dvum2vr5e9957r8aMGaNNmzZ5Y0WSkpOTVV1drdzcXLW0tKioqEgFBQXe+1ZSU1NVUFCgoqIitbS0KDc3VzU1NUpOTpYkuVwu5eTkqKKiQo2NjVq5cqXGjx+vESNGXOLNBQAAvVGXz7C8/vrrOn78uHbt2qXdu3d3GistLdXmzZuVlZWl7OxsDRo0SJmZmZowYYIkKSEhQUuXLtWyZct04sQJxcTEaOPGjYqKipIkLVy4UK2trUpLS5Pb7VZ8fLzWrl17yTYSAAD0bg6Pp2+dcKuu9q9rnkFB5+5hScnepyPHv/H1dNDDrh42UDseuFG1tW61tnIPC/omh0OKjh7gd8dzf9Xxel8Mb80PAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmEewAAAA8wgWAABgHsECAADMC/L1BAAAFxYQ4FBAgMPX0/CJwED/+526vd2j9naPr6dhEsECAEYFBDgUGdVfQX74g1uSnM5wX0/hR9fa1q76uiai5TsQLABgVECAQ0GBAXrwv0tVXtXo6+mgh8X8V4TW3RmngAAHwfIdCBYAMK68qlFHjn/j62kAPuWf5xkBAECvYipYampqtGDBAo0bN07x8fHKyspSa2urr6cFAAB8zFSwPPTQQ+rfv7/27dun/Px8HThwQLm5ub6eFgAA8DEzwfLll1/qww8/1KOPPqqwsDANHz5cCxYs0JYtW3w9NQAA4GNmbrotKytTVFSUBg8e7H3uyiuv1PHjx/XNN99o4MCBXfo8AQGSxw9vrr562ECFhQT6ehroYT+N/v//zTPAzK8b6Gl8f/sHf/3+dnTxbYbMBIvb7VZYWFin5zoeNzU1dTlYBg0acMnn1hv8n9RrfT0F/Ij88f0p/Bnf3/6F7+/vZqbh+vfvr9OnT3d6ruNxeDgvHgAA/sxMsMTGxqqurk7V1dXe5z777DMNGTJEAwb451kTAABwjplgueKKKzR27FitXLlSjY2Nqqio0Pr165WamurrqQEAAB9zeDx2blGtrq7W8uXLVVxcrICAAE2bNk2PPPKIAgO52QwAAH9mKlgAAAC+i5lLQgAAABdCsAAAAPMIFgAAYB7BAgAAzCNYAACAeQQLAAAwj2ABAADmESzolT755BNt2rRJhw4d8vVUAPwAs2fP7vS4ubnZRzOBdQQLzKusrNSsWbMUFxenxx9/XKWlpZo5c6ZeeOEF3XXXXdqzZ4+vpwjgeyotLe30ODEx0UczgXUEC8xbvny5IiIi9Mwzz+js2bOaP3++fvvb36q4uFjLly/XCy+84OspArhEePN1XEiQrycAXMxHH32k9957T+Hh4RozZozi4+N19913S5KmTZumVatW+XiGAC4Vh8Ph6ynAKM6wwLyzZ88qPDxckhQZGamIiAiFhIRIkgIDA/mNDAD8AGdYYN7//I0rIKBzZxMsQO/V2tqq7du3ex+3tLR0eiydO5MKECwwr729XQcPHvSGSWtra6fH7e3tvpwegB8gOjpa2dnZ3sdOp7PTY4fDQbBAkuTw8OspjBs1atT/Ou5wOPTJJ5/8SLMBAPgCwQIAAMzjplsAAGAewQIAAMwjWAAAgHkEC4A+48yZM6qsrPT1NAD0AIIFQJ9x11136e9//7uvpwGgBxAsAPqM2tpaX08BQA8hWAD8r9577z3deeedSkhI0LXXXqu7775bX3zxhRobG/Xwww8rPj5e119/vWbPnq3PPvtMknTixAnNmTNH48ePV2JiohYtWqSqqipJUmNjozIzM3Xrrbdq9OjRuvHGG7VhwwZJ0o4dOzR27FidOXPG++/v3r1bv/zlLy/6jsa/+c1vdPz4cS1dulTLly/X7Nmz9eSTT3ZaZv78+Vq3bp2Ki4uVmJiodevWKT4+XvHx8crKytLZs2clnXv35JdeekmTJk3SuHHjdNddd+njjz++ZF9TAN1HsAC4oMrKSj344IOaN2+eDhw4oA8++EAej0fPPfecNm/erMbGRv3tb3/T+++/r5/85Cd6+umnJUnPPPOMhgwZosLCQu3cuVNNTU3ev6r99NNP6+uvv1Z+fr5KS0uVmZmpZ599Vl9++aWSk5MVGBiod9991zuH7du3a/r06Rf9o3ibN2/WsGHD9Pvf/15PPfWUZsyYod27d3sjpLq6WoWFhXK5XJLORdXnn3+ud999V3/5y1/0wQcfaP369ZKkV155RX/605+0bt06HThwQC6XS/fdd5+qq6sv+dcYQNcQLAAuaNCgQdqxY4eSkpLU2NioyspKOZ1OnThxQqGhoTp69Ki2b9+uEydOaOXKlcrJyZEk9evXTx999JF27Nght9utF198UZmZmZKk+++/X2vXrlVERIQqKyvVr18/SVJVVZVCQkI0efJkvfHGG5Kkmpoa7d+/X9OnT+/23G+55RYFBATovffekyQVFBQoLi5Ow4cPl3TuHZKXLl2qiIgIXXHFFZozZ47efPNNSdKWLVs0f/58jRo1SsHBwUpNTdWVV17pHQfw4yNYAFxQcHCw3nrrLSUmJiolJUXPPPOMampq5PF4NHfuXM2ePVv5+fmaNGmSfvWrX2nPnj2SpMzMTN12223atGmTbrrpJrlcLh08eFDSuQh58MEHFR8frwULFnjPpnT8TSiXy6X9+/erpqZGb775psaMGeONjO74n/Gzbds2zZgxwzseGRkpp9PpfTx06FDvZat///vfWrNmjcaNG+f9OHr0qI4fP/49vooALgX++CGAC9q1a5defvllvfrqq7r88sslSStWrNCnn36qY8eOKSkpSenp6WpoaNArr7yihx9+WEVFRfrss890xx136P7779epU6f03HPPadGiRSoqKtKDDz6opKQkbdq0SUFBQaqtrdVrr73m/TevueYaxcTE6O2339aOHTs0a9as7z3/GTNm6Pbbb1dpaam+/vprTZo0yTvW0NCg06dPKywsTJL09ddfa9iwYZKkIUOG6IEHHlBKSop3+a+++kpRUVHfey4AfhjOsAC4oIaGBgUEBCg0NFQej0d79+7V9u3b1dLSory8PC1evFg1NTWKiIhQRESE+vfvr5CQEG3YsEErVqxQY2OjBg4cqLCwMO/ZjIaGBoWGhiowMFCnTp3SH/7wB0lSS0uL9991uVx67bXX9MUXX+jWW2/t8nxDQkLU0NDgfXzVVVcpJiZGy5cv12233eaNE0lqa2vTmjVrdObMGf3rX//Spk2blJqaKkm6/fbblZOT472JeN++fUpJSVFJScn3/2IC+EEIFgAXNH36dE2cOFEpKSmaMGGCcnJydO+99+rzzz/Xww8/rMsvv1wpKSkaM2aMXn/9da1fv179+vXT8uXL1d7erptvvlnXXXedDh06pHXr1kmSVq1apZ07d2rMmDFyuVwaPHiwrrrqKn366afef3fKlCkqLy8/LzIuJjU1Vc8++6weeeQR73Mul0v//Oc/O10O6hAZGambb75Z99xzj6ZPn645c+ZIktLT0zVt2jQtWLBAcXFxysrK0lNPPaWbb775+34pAfxA/LVmAOa0tbXphhtu0IYNG3Tttdf+oM/17rvv6umnn9auXbu8zxUXF+uee+7RsWPHfuhUAfxIuIcFgCllZWXatWuXhgwZ8oNipba2VpWVlcrJydGvf/3rSzhDAL5AsAAwZf78+ZKk7OzsTs/Hx8d731Plu+zYscN706wkffzxx1q0aJEmTpyoO++8s2cmC+BHwyUhAABgHjfdAgAA8wgWAABgHsECAADMI1gAAIB5BAsAADCPYAEAAOYRLAAAwDyCBQAAmPd/AaXGEDwuQW2aAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 11
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will limit our analysis to only binding assays. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.687206Z",
     "start_time": "2025-05-05T16:54:56.682890Z"
    }
   },
   "source": [
    "df = df.query(\"assay_type == 'B'\")\n",
    "df.shape"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8791, 13)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 12
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Aggregating Data\n",
    "In order to combine rows that contain the same molecule, we will use the \"groupby\" function. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.691907Z",
     "start_time": "2025-05-05T16:54:56.690417Z"
    }
   },
   "source": [
    "gb = df.groupby(\"molregno\")"
   ],
   "outputs": [],
   "execution_count": 13
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will iterate over the groups add the name and the mean of the multiple replicates to a temporary_list. Once this is finished we will create a new dataframe with the molecule name and the average IC50. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.912818Z",
     "start_time": "2025-05-05T16:54:56.738488Z"
    }
   },
   "source": [
    "row_list = []\n",
    "for k,v in gb:\n",
    "    row_list.append([k,v.standard_value.mean()])\n",
    "row_df = pd.DataFrame(row_list,columns=[\"name\",\"standard_value\"])"
   ],
   "outputs": [],
   "execution_count": 14
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see how many rows and columns are in our new dataframe.  Note that this is the same as the number of unique values of molregno. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.921437Z",
     "start_time": "2025-05-05T16:54:56.919278Z"
    }
   },
   "source": [
    "row_df.shape"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7382, 2)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 15
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Examining the Data Distribution\n",
    "Now we will make a plot of the distribution of IC50 values.  To do this, we will use the Seaborn Python library."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.932469Z",
     "start_time": "2025-05-05T16:54:56.930885Z"
    }
   },
   "source": [
    "import seaborn as sns"
   ],
   "outputs": [],
   "execution_count": 16
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we will set a few variables to make the plots look better. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:56.941184Z",
     "start_time": "2025-05-05T16:54:56.938974Z"
    }
   },
   "source": [
    "sns.set(rc={'figure.figsize': (15, 12)})\n",
    "sns.set(font_scale=1.5)\n",
    "sns.set_style('whitegrid')"
   ],
   "outputs": [],
   "execution_count": 17
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can make the plot. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.008310Z",
     "start_time": "2025-05-05T16:54:56.947544Z"
    }
   },
   "source": [
    "ax = sns.displot(row_df.standard_value,kind=\"kde\")"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 500x500 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 18
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that the plot above isn't very informative.  Most over the values are small, but there are some large values that are skewing the scale on the x-axis.   Let's plot the pIC50, which is the negative log of the IC50.  To do this, we'll first create a column containing the pIC50. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.017348Z",
     "start_time": "2025-05-05T16:54:57.015264Z"
    }
   },
   "source": [
    "row_df[\"pIC50\"] = -np.log10(row_df.standard_value * 1e-9)"
   ],
   "outputs": [],
   "execution_count": 19
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.027193Z",
     "start_time": "2025-05-05T16:54:57.024087Z"
    }
   },
   "source": [
    "row_df.head()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "      name  standard_value     pIC50\n",
       "0    10358       16934.368  4.771231\n",
       "1  1037723         130.000  6.886057\n",
       "2  1038161         700.000  6.154902\n",
       "3  1038163       20000.000  4.698970\n",
       "4  1038164       20000.000  4.698970"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>standard_value</th>\n",
       "      <th>pIC50</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>10358</td>\n",
       "      <td>16934.368</td>\n",
       "      <td>4.771231</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1037723</td>\n",
       "      <td>130.000</td>\n",
       "      <td>6.886057</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1038161</td>\n",
       "      <td>700.000</td>\n",
       "      <td>6.154902</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1038163</td>\n",
       "      <td>20000.000</td>\n",
       "      <td>4.698970</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1038164</td>\n",
       "      <td>20000.000</td>\n",
       "      <td>4.698970</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 20
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's make another plot, this time we'll plot the pIC50 distribution. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.111884Z",
     "start_time": "2025-05-05T16:54:57.049692Z"
    }
   },
   "source": [
    "ax = sns.displot(row_df.pIC50,kind=\"kde\")"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 500x500 with 1 Axes>"
      ],
      "image/png": "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dnY28+fPdzWZ2Gw25s2bx6lTp7jsssuanV/VlyxevJjNmzdjMpl46623GDZsWIvHN3fNbrvtNjQaDZ999lmjYR9vv/02n376KVFRUdx5552d8jm62u233w44Z4z57rvvXNttNht///vf2bFjBykpKfzyl78E5F5rijLWNjU1tcXnd3LPtez2229Hp9Px73//mx9++MG1PS8vj7/85S8AzJgxo8FrKisryc7O5vjx4w22T506lbCwMFasWNFgEpCysjL+9Kc/AfCb3/ymQ+ba1Tj8tQudj9u2bRvTp0/HYrEwZMgQkpOT2b17NwUFBQwePJglS5Y0mLT+xIkTrg4J69atazAN16FDh/jVr35FWVkZffv2ZcCAARw4cIDjx4/To0cP3nvvPbdnX1Gr8vJyxo8fj9lsJiUlpcXZYaZMmcK4ceNavGb/+c9/eOGFFwAYOHAgvXv35tChQxw5cgSTycSrr77a5AxKvuqpp57i/fffR6PRMHz4cBISEti7dy8nT56kW7duvPXWW66VcwL9XmvKm2++yd/+9jeuuuoqFixY0Oxxcs/Bv/71L15++WVuv/32Jld/Ua6DTqfj4osvxmAwsG3bNsxmMzfddBN//etfGxz/0Ucf8cQTT9CjRw/XbEaKlStX8thjj+FwOBgxYgSxsbHs2LGDsrIyfv7zn7N48eIOCVIZR6pS6enpLF++nJdffpnt27dz+PBhkpOTycjI4J577nF75ReAAQMG8NFHH/Hyyy+zadMmNmzYQGJiInfccQf3339/g5qtr9q+fbtrPFhOTg45OTnNHjto0CBXs09zpk+fztChQ3njjTf48ccfyc7Oplu3btx8883cf//99OjRoyOL73VPP/00l1xyCe+++y779+9n//79dO/enbvvvpvp06e7vfxZINxrTSktLQVanzWrJYF2zzVHWe7wzTffZM+ePWg0Gvr168ett97KDTfc0KZzTZkyhe7du7tquAcPHqRnz5488MAD3HbbbR22jJrUSIUQQggPyDNSIYQQwgMSpEIIIYQHJEiFEEIID0iQCiGEEB6QIBVCCCE8IEEqhBBCeECCVAghhPCABKkQQgjhAZnZSIgAcscdd7B9+3ZuuOEGnn322WaPKykp4cMPP+Sbb77h0KFDVFVVYTQaSUlJ4dJLL+XWW29tcaq/iRMncvLkyRbLsmPHDiIiIhps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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 21
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Checking For Null Values\n",
    "Check the dataframe to see if we have any null values."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.131242Z",
     "start_time": "2025-05-05T16:54:57.128453Z"
    }
   },
   "source": [
    "row_df.dropna().shape"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7382, 3)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 22
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.142341Z",
     "start_time": "2025-05-05T16:54:57.140407Z"
    }
   },
   "source": [
    "row_df.shape"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7382, 3)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 23
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The shapes of the data frame and the dataframe without null values are the same, so we're good. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Sorting the Data\n",
    "Sort the data by pIC50, note that the values with pIC50 approximately equal to zero (the first few rows) are almost certainly data input errors.  These compounds are reported to have IC50s of 10^9nM, which is 1M.  I seriously doubt that the compounds would even be soluble at that concentration."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.168422Z",
     "start_time": "2025-05-05T16:54:57.164369Z"
    }
   },
   "source": [
    "row_df.sort_values(\"pIC50\",ascending=True).head()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "         name  standard_value  pIC50\n",
       "3066  1758382    1.000000e+09  -0.00\n",
       "3065  1758380    1.000000e+09  -0.00\n",
       "3067  1758385    1.000000e+09  -0.00\n",
       "5531   440049    9.549926e+08   0.02\n",
       "5545   440263    7.585776e+08   0.12"
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>standard_value</th>\n",
       "      <th>pIC50</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3066</th>\n",
       "      <td>1758382</td>\n",
       "      <td>1.000000e+09</td>\n",
       "      <td>-0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3065</th>\n",
       "      <td>1758380</td>\n",
       "      <td>1.000000e+09</td>\n",
       "      <td>-0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3067</th>\n",
       "      <td>1758385</td>\n",
       "      <td>1.000000e+09</td>\n",
       "      <td>-0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5531</th>\n",
       "      <td>440049</td>\n",
       "      <td>9.549926e+08</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5545</th>\n",
       "      <td>440263</td>\n",
       "      <td>7.585776e+08</td>\n",
       "      <td>0.12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 24
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Selecting High Confidence Data\n",
    "Let's look at the distribution of confidence scores associated with our original dataset. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.193649Z",
     "start_time": "2025-05-05T16:54:57.191216Z"
    }
   },
   "source": [
    "df.confidence_score.value_counts()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "confidence_score\n",
       "9    8395\n",
       "8     396\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 25
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will create a new dataframe with only the molecules have a confidence score of 9."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.217839Z",
     "start_time": "2025-05-05T16:54:57.214331Z"
    }
   },
   "source": [
    "score_9 = df.query(\"confidence_score == 9\")"
   ],
   "outputs": [],
   "execution_count": 26
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.252212Z",
     "start_time": "2025-05-05T16:54:57.250139Z"
    }
   },
   "source": [
    "score_9.shape"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8395, 13)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 27
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's try to add a column to the new dataframe that we created.  Note that this throws an exception because the new dataframe is just a reference to the original dataframe. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.277961Z",
     "start_time": "2025-05-05T16:54:57.276180Z"
    }
   },
   "source": [
    "score_9[\"extra\"] = 3"
   ],
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/0n/pn_zp11569sfv4m2w6gzpwyr0000gp/T/ipykernel_79099/3244047495.py:1: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  score_9[\"extra\"] = 3\n"
     ]
    }
   ],
   "execution_count": 28
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "What we really want to do is create a new dataframe, we can do this with the \"copy\" method. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.305770Z",
     "start_time": "2025-05-05T16:54:57.300609Z"
    }
   },
   "source": [
    "score_9 = df.query(\"confidence_score == 9\").copy()"
   ],
   "outputs": [],
   "execution_count": 29
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now adding a new column works."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.321939Z",
     "start_time": "2025-05-05T16:54:57.320152Z"
    }
   },
   "source": [
    "score_9['extra'] = 3"
   ],
   "outputs": [],
   "execution_count": 30
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.334221Z",
     "start_time": "2025-05-05T16:54:57.330139Z"
    }
   },
   "source": [
    "score_9.head()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "                                     canonical_smiles molregno mol_chembl_id  \\\n",
       "46  COC(=O)C1=C(C)NC(=C(C1c2ccccc2[N+](=O)[O-])C(=...   419596     CHEMBL193   \n",
       "47  CN(CCOc1ccc(NS(=O)(=O)C)cc1)CCc2ccc(NS(=O)(=O)...     5638     CHEMBL473   \n",
       "48       CCOC(=O)N1CCC(=C2c3ccc(Cl)cc3CCc4cccnc24)CC1   110803     CHEMBL998   \n",
       "49  Oc1ccc(CCN2CCC(CC2)Nc3nc4ccccc4n3Cc5ccc(F)cc5)cc1    91240   CHEMBL60796   \n",
       "50               Cc1[nH]cnc1CN2CCc3c(C2=O)c4ccccc4n3C   153342    CHEMBL1110   \n",
       "\n",
       "   standard_relation  standard_value standard_type standard_units  \\\n",
       "46                 =        50118.72          IC50             nM   \n",
       "47                 =           10.00          IC50             nM   \n",
       "48                 =          169.82          IC50             nM   \n",
       "49                 =            1.00          IC50             nM   \n",
       "50                 =         3235.94          IC50             nM   \n",
       "\n",
       "                                          description      organism  \\\n",
       "46  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "47  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "48  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "49  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "50  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "\n",
       "   assay_type  confidence_score pref_name tgt_chembl_id  extra  \n",
       "46          B                 9      HERG     CHEMBL240      3  \n",
       "47          B                 9      HERG     CHEMBL240      3  \n",
       "48          B                 9      HERG     CHEMBL240      3  \n",
       "49          B                 9      HERG     CHEMBL240      3  \n",
       "50          B                 9      HERG     CHEMBL240      3  "
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>canonical_smiles</th>\n",
       "      <th>molregno</th>\n",
       "      <th>mol_chembl_id</th>\n",
       "      <th>standard_relation</th>\n",
       "      <th>standard_value</th>\n",
       "      <th>standard_type</th>\n",
       "      <th>standard_units</th>\n",
       "      <th>description</th>\n",
       "      <th>organism</th>\n",
       "      <th>assay_type</th>\n",
       "      <th>confidence_score</th>\n",
       "      <th>pref_name</th>\n",
       "      <th>tgt_chembl_id</th>\n",
       "      <th>extra</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>COC(=O)C1=C(C)NC(=C(C1c2ccccc2[N+](=O)[O-])C(=...</td>\n",
       "      <td>419596</td>\n",
       "      <td>CHEMBL193</td>\n",
       "      <td>=</td>\n",
       "      <td>50118.72</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>CN(CCOc1ccc(NS(=O)(=O)C)cc1)CCc2ccc(NS(=O)(=O)...</td>\n",
       "      <td>5638</td>\n",
       "      <td>CHEMBL473</td>\n",
       "      <td>=</td>\n",
       "      <td>10.00</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>CCOC(=O)N1CCC(=C2c3ccc(Cl)cc3CCc4cccnc24)CC1</td>\n",
       "      <td>110803</td>\n",
       "      <td>CHEMBL998</td>\n",
       "      <td>=</td>\n",
       "      <td>169.82</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>Oc1ccc(CCN2CCC(CC2)Nc3nc4ccccc4n3Cc5ccc(F)cc5)cc1</td>\n",
       "      <td>91240</td>\n",
       "      <td>CHEMBL60796</td>\n",
       "      <td>=</td>\n",
       "      <td>1.00</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>Cc1[nH]cnc1CN2CCc3c(C2=O)c4ccccc4n3C</td>\n",
       "      <td>153342</td>\n",
       "      <td>CHEMBL1110</td>\n",
       "      <td>=</td>\n",
       "      <td>3235.94</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 31
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's say that we want to create a new column with more descriptive names for the data quality.  We can do this using the \"map\" function. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.360908Z",
     "start_time": "2025-05-05T16:54:57.358872Z"
    }
   },
   "source": [
    "level_map = {8: 'fair', 9: 'good'}\n",
    "df['confidence_level'] = df.confidence_score.map(level_map)"
   ],
   "outputs": [],
   "execution_count": 32
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.388275Z",
     "start_time": "2025-05-05T16:54:57.383784Z"
    }
   },
   "source": [
    "df.head()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "                                     canonical_smiles molregno mol_chembl_id  \\\n",
       "46  COC(=O)C1=C(C)NC(=C(C1c2ccccc2[N+](=O)[O-])C(=...   419596     CHEMBL193   \n",
       "47  CN(CCOc1ccc(NS(=O)(=O)C)cc1)CCc2ccc(NS(=O)(=O)...     5638     CHEMBL473   \n",
       "48       CCOC(=O)N1CCC(=C2c3ccc(Cl)cc3CCc4cccnc24)CC1   110803     CHEMBL998   \n",
       "49  Oc1ccc(CCN2CCC(CC2)Nc3nc4ccccc4n3Cc5ccc(F)cc5)cc1    91240   CHEMBL60796   \n",
       "50               Cc1[nH]cnc1CN2CCc3c(C2=O)c4ccccc4n3C   153342    CHEMBL1110   \n",
       "\n",
       "   standard_relation  standard_value standard_type standard_units  \\\n",
       "46                 =        50118.72          IC50             nM   \n",
       "47                 =           10.00          IC50             nM   \n",
       "48                 =          169.82          IC50             nM   \n",
       "49                 =            1.00          IC50             nM   \n",
       "50                 =         3235.94          IC50             nM   \n",
       "\n",
       "                                          description      organism  \\\n",
       "46  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "47  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "48  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "49  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "50  Inhibition of human Potassium channel HERG exp...  Homo sapiens   \n",
       "\n",
       "   assay_type  confidence_score pref_name tgt_chembl_id confidence_level  \n",
       "46          B                 9      HERG     CHEMBL240             good  \n",
       "47          B                 9      HERG     CHEMBL240             good  \n",
       "48          B                 9      HERG     CHEMBL240             good  \n",
       "49          B                 9      HERG     CHEMBL240             good  \n",
       "50          B                 9      HERG     CHEMBL240             good  "
      ],
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>canonical_smiles</th>\n",
       "      <th>molregno</th>\n",
       "      <th>mol_chembl_id</th>\n",
       "      <th>standard_relation</th>\n",
       "      <th>standard_value</th>\n",
       "      <th>standard_type</th>\n",
       "      <th>standard_units</th>\n",
       "      <th>description</th>\n",
       "      <th>organism</th>\n",
       "      <th>assay_type</th>\n",
       "      <th>confidence_score</th>\n",
       "      <th>pref_name</th>\n",
       "      <th>tgt_chembl_id</th>\n",
       "      <th>confidence_level</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>COC(=O)C1=C(C)NC(=C(C1c2ccccc2[N+](=O)[O-])C(=...</td>\n",
       "      <td>419596</td>\n",
       "      <td>CHEMBL193</td>\n",
       "      <td>=</td>\n",
       "      <td>50118.72</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>good</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>CN(CCOc1ccc(NS(=O)(=O)C)cc1)CCc2ccc(NS(=O)(=O)...</td>\n",
       "      <td>5638</td>\n",
       "      <td>CHEMBL473</td>\n",
       "      <td>=</td>\n",
       "      <td>10.00</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>good</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>CCOC(=O)N1CCC(=C2c3ccc(Cl)cc3CCc4cccnc24)CC1</td>\n",
       "      <td>110803</td>\n",
       "      <td>CHEMBL998</td>\n",
       "      <td>=</td>\n",
       "      <td>169.82</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>good</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>Oc1ccc(CCN2CCC(CC2)Nc3nc4ccccc4n3Cc5ccc(F)cc5)cc1</td>\n",
       "      <td>91240</td>\n",
       "      <td>CHEMBL60796</td>\n",
       "      <td>=</td>\n",
       "      <td>1.00</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>good</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>Cc1[nH]cnc1CN2CCc3c(C2=O)c4ccccc4n3C</td>\n",
       "      <td>153342</td>\n",
       "      <td>CHEMBL1110</td>\n",
       "      <td>=</td>\n",
       "      <td>3235.94</td>\n",
       "      <td>IC50</td>\n",
       "      <td>nM</td>\n",
       "      <td>Inhibition of human Potassium channel HERG exp...</td>\n",
       "      <td>Homo sapiens</td>\n",
       "      <td>B</td>\n",
       "      <td>9</td>\n",
       "      <td>HERG</td>\n",
       "      <td>CHEMBL240</td>\n",
       "      <td>good</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 33
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can make a bar plot of the data quality with the descriptions on the x-axis. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.512917Z",
     "start_time": "2025-05-05T16:54:57.449195Z"
    }
   },
   "source": [
    "ax = df.confidence_level.value_counts().plot(kind=\"bar\")\n",
    "ax.tick_params(axis='x', rotation=0)"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1500x1200 with 1 Axes>"
      ],
      "image/png": "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AAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAoQHgDAAAAgAKENwAAAAAooLYrgz/zmc/k1Vdffc9xo0aNypw5c9r++6JFi3LHHXdk2bJl2bp1awYNGpTzzz8/5557bqqqqjrM37FjR+bOnZt77rknr7zySmprazNy5MhMmjQpo0eP7nSfGzZsyKxZs/LII49k7dq1qaury4knnpgpU6akoaGhK6cJAAAAAHusS+HtN3/zN/Pmm292uq61tTUPPvhgduzYkU984hNty+++++78+Z//eXr06JHRo0enR48e+fd///dMmzYtP/jBD/LVr361w3auuOKKzJ8/PwcffHAaGxuzfv36LFq0KE8//XS+8pWv5Jxzzmk3Z/369bnwwguzYsWKfOxjH8u4ceOycuXK3HfffXnkkUfyzW9+M8OGDevKqQIAAADAHulSeLvyyit3ue4b3/hGduzYkV//9V/Pn/3ZnyVJVq5cmRkzZqRv376ZM2dORowYkSRZu3ZtJk6cmHnz5mXs2LE5/fTT27Yzd+7czJ8/P8OHD8/s2bPTr1+/JMnixYszefLkXHvttWlsbMzAgQPb5lx//fVZsWJFzj777Fx33XWpqalJktx22225+eabc/nll+f+++9PdbVf1gIAAADw/villKglS5bklltuSV1dXW688cbU1v6s582aNSstLS259NJL26Jbkhx55JGZPn1625ifN3PmzCTJtGnT2qJbkowZMyYTJ07Mtm3b2v2Mdc2aNZk/f37q6upy1VVXtUW3JLnsssty/PHHp6mpKU899dQv41QBAAAAYLfscXjbvn17pk+fnp07d+ZLX/pS6uvr29Y99thjSZLTTjutw7zGxsYcdNBBee655/Laa68l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oADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoADhDQAAAAAKEN4AAAAAoIDark5YuXJlTj/99F84ZvHixTnkkEPa/vuiRYtyxx13ZNmyZdm6dWsGDRqU888/P+eee26qqqo6zN+xY0fmzp2be+65J6+88kpqa2szcuTITJo0KaNHj+50nxs2bMisWbPyyCOPZO3atamrq8uJJ56YKVOmpKGhoaunCQAAAAB7pMvh7YUXXkiSDBkyJMOHD+90TM+ePdv+8913350///M/T48ePTJ69Oj06NEj//7v/55p06blBz/4Qb761a+2m9va2porrrgi8+fPz8EHH5zGxsasX78+ixYtytNPP52vfOUrOeecc9rNWb9+fS688MKsWLEiH/vYxzJu3LisXLky9913Xx555JF885vfzLBhw7p6qgAAAADQbV0Obz/+8Y+TJBdddFF+//d//xeOXblyZWbMmJG+fftmzpw5GTFiRJJk7dq1mThxYubNm5exY8e2u4Nu7ty5mT9/foYPH57Zs2enX79+SX52F93kyZNz7bXXprGxMQMHDmybc/3112fFihU5++yzc91116WmpiZJctttt+Xmm2/O5Zdfnvvvvz/V1X5ZCwAAAMD7o8slqnLH28iRI99z7KxZs9LS0pJLL720LbolyZFHHpnp06e3jfl5M2fOTJJMmzatLbolyZgxYzJx4sRs27Ytc+bMaVu+Zs2azJ8/P3V1dbnqqqvaoluSXHbZZTn++OPT1NSUp556qqunCgAAAADd1q3w1rNnzxxzzDHvOfaxxx5Lkpx22mkd1jU2Nuaggw7Kc889l9deey1JsmLFiqxevTqHHnpoTjjhhA5zxo8fnyR59NFH25Y98cQTaWlpSWNjY/r27btbcwAAAACgtC6Ft5/+9KfZuHFjjj766Nx99905++yz88lPfjKjR4/OH//xH+fZZ59tG9vc3Jw33ngjPXr0yKBBgzpsq6ampm35iy++mCRpampKkhxzzDGdvnShsnz1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Ua9evd886EFERERuXdrjTURERG5pDRo0YMaMGYwePZr4+Hg2bdpEu3btuHDhAkePHsU0TR544AHGjBljjZk4cSInT54kMTGRMWPG0LhxY5o0aUJWVhbnzp0DYOjQoYwcObJG5mQYBu+88w6vvPIKc+fOZdmyZbRs2ZKsrCxycnLo1asXGzZsqDDu7rvvZvLkybz++ussWLCAzz//nDZt2pCfn09mZiamadKwYUPmzZtX6amn1+Opp54iPT2d+fPnM2nSJD788EOaNGnC0aNHycnJwcnJiTfeeMM6cdbT05OPP/6YyMhIduzYQc+ePWnbti02m43Dhw9TUFCAs7MzU6dOxd/f/4bjq8zIkSPJysriiy++4JVXXuGDDz7Ax8eHkydPkp2dDcBdd93F22+/7XB8QEAAhmFYhyaUP1ShPF9fXz788EPGjRvHqlWriI+Pp23bthQWFlpLXT08PJg9ezYNGjSonsmKiIhIjVLiTURERG55nTt3ZtWqVcybN4/NmzeTnp6Ok5MTd9xxB/379+fpp5+mVq1fC/1dXV2ZOXMma9euJSYmhj179pCWlkajRo24//77GThwIPfcc08Nzgj69etHu3btmDt3LklJSezfvx9fX1+ef/55evbs6TDxBqWb/wcFBbFw4UJ27NjBwYMHsdlstGnThm7dujF8+PAqTfK8/PLLdO3alcWLF/P999/z448/4unpSe/evRkxYgSBgYF2/QMDA4mLi2PRokVs3LiRzMxMCgsLadSoESEhIQwbNsxK1FUXm83G5MmTCQsL4/PPP+f7778nLS0NNzc3goKCePTRRxk4cOBvJif79+/Pu+++S506dXj44Ycr7ffggw+yevVqFixYwNatWzl8+DDFxcU0b96c0NBQhg8fTosWLapjmiIiIvIHYDNv5Lx7ERERERERERERcUh7vImIiIiIiIiIiFQDJd5ERERERERERESqgfZ4ExEREZE/pM2bN/PJJ5/8rrGvvvoqHTt2rOKIRERERK6PEm8iIiIi8od05swZUlNTf9fY3NzcKo5GRERE5PrpcAUREREREREREZFqoD3eREREREREREREqoESbyIiIiIiIiIiItVAiTcREREREREREZFqoMSbiIiIiIiIiIhINVDiTUREREREREREpBoo8SYiIiIiIiIiIlINlHgTERERERERERGpBkq8iYiIiIiIiIiIVIP/A10ulJPtR85mAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 34
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also make a boxplot to compare the IC50 distributions for the good quality data and the fair quality data. "
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.685352Z",
     "start_time": "2025-05-05T16:54:57.529746Z"
    }
   },
   "source": [
    "ax = sns.boxplot(data=df,x=\"confidence_level\",y=\"standard_value\")\n",
    "ax.set(yscale=\"log\",xlabel=\"Confidence Level\",ylabel=\"IC50 (nM)\")"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[None, Text(0.5, 0, 'Confidence Level'), Text(0, 0.5, 'IC50 (nM)')]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1500x1200 with 1 Axes>"
      ],
      "image/png": "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00/vc+2yZcuSJHvvvfcWx0eNGtWrDqDaDBgwIOvXd6SjoyNXX/31JF/vuf7H/wUAAKB4dpoZdltj3boX9owbNGjQFse7r3fXAVSTlpbmrF27Jm9+88zssUdtr7E99qjNm998RtasWZOWFrOMAQAAiminmWG3Nfr165dyuZyampqXrOvq6tpBHQHsOO3t7UmSN73p+Jx44t+mpaW559CJ+vqJef755/Pd717XUwcAAECxVGVgN2TIkLS3t6ejo2OL4+vXv3BC4uDBg3dkWwA7RG1tbZJk6dIlGT/+gM32qlu6dEmvOgAAAIqlKpfEdu9Rt3z58i2Od+9d110HUE3q6yemrm5kFi68IeVy71Ngy+VybrzxB6mrG5n6+okV6hAAAICXUpWBXffpsK2trVsc777+YqfIAuzMSqVSZs6clcWL70tDw7y0trako6Mjra0taWiYl8WL78vMmbNSKlXlPwEAAAA7vapcEnv00Ufnhz/8YW666aacccYZvcZWrVqVe+65JwMGDMgb3vCGCnUIsH1NnXpYZs8+P42NCzJ37id6rtfVjczs2edn6tTDKtccAAAAL6kqA7tjjz02++67b+64444sWLAgs2bNSvLC3nUf/ehHs27durztbW9LXV1dhTsF2H6mTj0skye/NrfeenOWLVuWUaNGZdq049K/f1W+9QMAAFSNqvzUNmjQoFxyySU555xz8qlPfSrf/e53M3bs2Nx3331ZtmxZDjrooFx88cWVbhNgu2pqWpRvf/ubWbGirefaf/3XT/LWt77DDDsAAIACq9oNjA4//PB85zvfyfHHH58//OEPuf322zNs2LDMnj071157bYYOHVrpFgG2m6amRbniisuydu2aXtfXrl2TK664LE1NiyrUGQAAAH9OTVdXV1elm6hmmzaVs3Llc5VuA9iFlMvlXHjh7KxduyaTJ0/JSSedmjFjxmXp0iX50Y+uz+LF92XYsOH5whfmO3gCAABgBxkxYkj69evbZzCf1ACqTHPzQ1m7dk0OOODAvP/9H8j48Qdk0KBBGT/+gLz//R/IAQfUZ+3aNWlufqjSrQIAALAFAjuAKtMdxJ166ls2m0FXKpVy8slv7lUHAABAsQjsAKqWHQ8AAAB2RgI7gCozceJBSZLrr/9uyuVyr7FyuZwf/OC7veoAAAAoFoEdQJWZOPGgDBs2PI888tt8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H/84p5xySs/1n/3sZxk1alTGjBlTwe4Atk57e3uS5J577spnP/vJXjek1133rUybdmyvOgCAatbUtCiNjQvS1ra851pd3cjMnDnLFiFAYQns8sJ+BhdddFE+9KEP5V/+5V9y/PHH584778z111+fT3ziE5aMATuV2traJMktt/xksxnCXV1dueWWm3rVAQBUq6amRZk///JMmnRITjhhRgYMGJiNGzfk179enPnzL3dSLFBYO21g9/jjj+fUU0/Naaedlo997GNbrHnsscdyxRVXpKmpKStWrMjo0aNz4okn5txzz83uu+/eq/bUU09N//7985WvfCU33HBD9tlnn3zyk5/MzJkzd8SfA7DN/MVfTOj5uaurq9fYH//+x3UAANWme1/f/fbbP08+uSSLF9/XM7bXXnXZb7/97esLFNZOGdi1tbVl9uzZ6ejoeNGaBx54IGeeeWbWrVuXSZMm5eCDD869996bK6+8Mrfddlu+9a1vZejQob0ec9JJJ+Wkk07a5v327+/NH9hx/uu/bulT3c9+dktOPHHbv+cBABTBww8/nLa25WlrW56BAwf2Glu7dk1WrGhLkjz66G/z6lf/ZSVaBHhRO11g9/DDD+f888/PE0888aI1nZ2dueiii7Ju3bp85jOfyVve8pYkyfr163PhhRfm1ltvzbx58150Zt62VCrVZM89h2z31wHo1tr62z7X7bmnWcQAQHV6/vnnen6ePHlyzjjjjOy333554oknct111+VXv/pVT53PbEDR7DSB3erVq3PVVVflmmuuyYYNGzJ27Ng8+eSTW6xduHBhlixZkiOPPLInrEuSQYMGZe7cuZk2bVquu+66nH/++dljjz22a9/lclfWrFm3XV8D4I898cTve36+6qr/yGOPPZr29vbU1tZm//3H55xz3t1Tt2rVcy/yLAAAO7ennlqWJBk37lU577wLUyqVsn59OXvvPS7nnXdh/vVfP5wlS36fp55a5p4I2CGGDx+cfv36tgpzpwnsrrnmmnzta1/L6NGj8/GPfzwPPvhgGhoatlh76623JkmOPfbYzcb23HPPHH744bntttvyi1/8Yrssgf1TnZ2ODAd2nGefXZsk6d+/f5JSDjjg1T1jnZ2d6d+/fzo7O/Pss2u9PwEAVWvNmhfuiQYO3C2dneX88TZ15XI5AwYM7KlzTwQUzU6zudro0aPzoQ99KDfddFOmTZv2krUtLS1JkgMPPHCL4xMmvLDRenNz87ZtEqAABg7cLckL4dzFF8/J7bf/NKtWrcztt/80F188J52dnb3qAACqUU1NTZLk0UcfSUPDvLS2tqSjoyOtrS1paJiX3/2utVcdQJHsNDPsTj/99D7XLlv2wtTnvffee4vjo0aN6lUHUE0mTTokP//5bUmSNWvW5Jprvv6idQAA1WrixIPyox9dn3322TdPPrkkc+d+omesrm5k9tlnnzz11FOZOPGgyjUJ8CJ2msBua6xb98KecYMGDdriePf17jqAavL2t5/ZE9j9uToAgGo1ceJBGTZseJ566g+ZNOmQHH/89AwcuFs2bHg+v/714jzwwP0ZNmy4wA4opKoM7Pr165dyufxnpzZ3dXXtoI4AdpyBAwfmkEOm5v77m1605pBDpmbgwIE7sCsAgB2rVCrlXe96T6644rI0Nz+UBx64v2es+z7oXe96T0qlnWanKGAXUpXvTEOGvHAkd0dHxxbH169fnyQZPHjwDusJYEcaPXqfVzQOAFANpk49LOedd0GGDRve6/qwYcNz3nkXZOrUwyrUGcBLq8oZdqNGjUp7e3uWL1+ecePGbTbevXdd9152ANWks7MzN998Y4YP3yNz516a737323nmmWey9957581vfms+8pEP5Oabb8xpp53xPyfJAgBUr6lTD8uUKYempaU57e3tqa2tTX39RDPrgEKryk9qBx54YFpaWtLa2prXvva1m423trb21AFUm1tvvTnlcjmnnXZ6dt9997zzne/pNX7qqW/JNdd8PbfeenOOO256hboEANhxSqWSveqAnUpVfqVw9NFHJ0luuummzcZWrVqVe+65JwMGDMgb3vCGHd0awHbXPYt40qTNv7BIksmTp/SqAwAAoFiqMrA79thjs+++++aOO+7IggULeq6vX78+H/3oR7Nu3bq85S1vSV1dXQW7BNg+upf7P/DAvVscX7z4vl51AAAAFEtVBnaDBg3KJZdckkGDBuVTn/pUTjvttPzjP/5jjj322Pz0pz/NQQcdlIsvvrjSbQJsF9OmHZdSqZTvfe876ezs7DXW2dmZ66//z5RKpUybdlyFOgQAAOClVGVglySHH354vvOd7+T444/PH/7wh9x+++0ZNmxYZs+enWuvvTZDhw6tdIsA20X//v1z3HHTs2bN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PPTQQ6/4eQAAAACgmvUpsOvq6trefQAAAAAA6WNgl7wwQy5JXv3qV2fGjBk5+OCDt1tTAAAAALCr6lNgd/nll+fGG2/Mz372szz00EN5+OGHM27cuMyYMSPTp0/PAQccsL37BAAAAIBdQp8Cu+OPPz7HH398Ojo68tOf/jQ33nhj7rjjjnz5y1/OlVdemQkTJvSEd6961au2d88AAAAAULX6vCQ2SQYPHpyTTjopJ510Up599tnccsstWbhwYe66665cdtllufzyy/Oa17wmM2bMyIknnpi99957e/UNAAAAAFVpqwK7PzZ06NCceuqpOfXUU7N69ercfPPNufHGG7No0aL8+te/zr//+79nypQpmTFjRk444YSMGDFiW/YNAAAAAFXpZQd2f2yPPfbI6aefntNPPz0rV67MT37yk/z4xz9OU1NT7r333sydOzeHH354vv71r2+LlwMAAACAqlXa1k84YsSIvP3tb89XvvKV/PM//3N23333dHZ25s4779zWLwUAAAAAVWebzLDrtm7dutx+++35yU9+kl/84hdZv359urq6UiqVcuihh27LlwIAAACAqvSKA7t169bltttu6wnpnn/++Z6QburUqTnxxBNz/PHHp66ublv0S0GtWNGWZ59dW+k2gC146qmlvf4LFMvQocOy117uk6qFeyIoLvdEUGzuiXqr6erq6traBz333HM9Id0dd9zRE9LV1NRkypQpOfHEE3PCCSdk5MiR26PnncqmTeWsXPlcpdvYrlasaMtHPnJxNm7cUOlWAGCnM2DAwMyd+3k3qFXAPREAvHy7wj3RiBFD0q9f33an6/MMu+eeey633nprT0i3YcOGnpBu8uTJPSHd3nvv/bIbZ+f07LNrs3Hjhgza94iUBg6vdDsAsNMob1iT9X+4O88+u7aqb053Fe6JAODlcU+0uT4FdrNnz84vf/nLnpAuSSZNmpQTTzwxJ554YkaPHr1dm2TnUBo4PP0Gj6h0GwAAFeWeCAB4pfoU2N16660vFPfvnyOOOCInnnhi9t133yTJY489lscee6xPL3bkkUe+zDYBAAAAYNfQ5yWxNTU12bRpU375y1/ml7/85Va/UE1NTR566KGtfhwAAAAA7Er6HNi9jLMptunjAQAAAGBX0KfArrm5eXv3AQAAAAAk6dtZsgAAAADADiGwAwAAAIAC6fMedi9m1apVeeCBB7J27dp0dna+ZO2pp576Sl8OAAAAAKraKwrs5s2bl2984xvZtGnTn62tqakR2AEAAADAn/GyA7vvfe97ueqqq5K8EMaNGDEiu+222zZrDAAAAAB2RS87sLvuuutSU1OTk08+Of/8z/+c2trabdgWAAAAAOyaXnZg19LSkuHDh+ff/u3fMnDgwG3ZEwAAAADssl7RKbFjx44V1gEAAADANvSyA7vx48fnySefTFdX17bsBwAAAAB2aS87sDvjjDOyevXqfOtb39qW/QAAAADALu1l72F3+umn57//+7/z2c9+Nk888USOOeaYjBo16iWXyI4bN+7lvhwAAAAA7BJedmD3V3/1V0mSzs7OXHvttbn22mtfsr6mpiYPPfTQy305AAAAANglvOzArq2trefnvuxjZ687AAAAAPjzXnZg99Of/nRb9gEAAAAA5BUEdmPGjNmWfQAAAAAA6eMpsWvXrt0uL75mzZrt8rwAAAAAsLPqU2B3/PHH59vf/nbK5fI2edHOzs78f//f/5djjz12mzwfAAAAAFSLPgV2RxxxRD7xiU/kpJNOyg9/+MNs2LDhZb3Y6tWrc8011+TEE0/M//2//zdHHXXUy3oeAAAAAKhWfdrDbt68eZk2bVouueSSfPCDH8ynP/3pnHjiiTn66KMzderUDB8+/EUf++STT6apqSk///nPc8stt2TDhg2pra3NF7/4xRx33HHb7A/Zlp5//vmcfPLJmTJlSi655JJKtwMAAADALqTPh06cdNJJeeMb35grr7wyCxYsyLe//e00NjYmSUaOHJn99tsvw4YNy+DBg7NmzZqsWrUqTz/9dFasWJEk6erqyvDhw3P22WfnzDPPzLBhw7bPX7QNXH755Xn88cczZcqUSrcCAAAAwC5mq06JHTp0aC6++OK8973vzXe+8538+Mc/TnNzc5YtW5Zly5a96OMOPPDAnHLKKTnjjDMydOjQV9z09vSb3/wm/+///b/U1tZWuhUAAAAAdkFbFdh123PPPXPOOefknHPOyapVq7Jo0aI8+eSTWbFiRdasWZPddtstdXV12X///fPa1742o0aN2tZ9bxcbN27MRz/60ZxzzjlZuHBhpdsBAAAAYBf0sgK7P7bnnnvm+OOP3xa9VNxVV12Vcrmcs846S2AHAAAAQEW84sCuWjz66KO56qqrcs0112TAgAGVbgcAAACAXVSp0g0UQblczkc/+tGcfvrpmTx5cqXbAQAAAGAXZoZdkmuvvTZPPfVUrrrqqnR2dvZc7+rqSmdnZ/r165eampoKdggAAADArkJgl+SWW27J008/nde97nW9rj/yyCO5/vrrc8011+Twww+vUHcAAAAA7EoEdkk++clP5rnnnut17aKLLsr48eNz3nnnZf/9969QZwAAAADsagR2Sf7iL/5is2u77bZbamtrc/DBB1egIwAAAAB2VTvtoROPP/54DjnkkHzqU5960ZrHHnssF198cY455phMmjQpxx13XL7whS9k3bp1O7BTAAAAAOi7nXKGXVtbW2bPnp2Ojo4XrXnggQdy5plnZt26dZk0aVIOPvjg3Hvvvbnyyitz22235Vvf+laGDh36oo//0Y9+tM367d9/p81F+6Rfv+r++wBge+vXr1T19wu7gu57ovLzayrcCQDsXLr/7XRP9L9eVmD39NNPZ9GiRXn88cezatWqrF+/PjU1NRk0aFBGjBiR/fffP1OmTMm+++67rfvNww8/nPPPPz9PPPHEi9Z0dnbmoosuyrp16/KZz3wmb3nLW5Ik69evz4UXXphbb7018+bNy8c+9rFt3t+fKpVqsueeQ7b761TSihWDKt0CAOzUhg0bVPX3C7uC7nui9U/dXeFOAGDn5J7of21VYHfXXXeloaEh9957b6/rXV1dSZKamppe1w877LC8733vyxFHHPEK20xWr16dq666Ktdcc002bNiQsWPH5sknn9xi7cKFC7NkyZIceeSRPWFdkgwaNChz587NtGnTct111+X888/PHnvs8Yp7eynlclfWrKnuJbhr166vdAsAsFNbu3Z9Vq167s8XUmjd90SD9jkipd2GV7gbANh5lJ9fk/VP3V3190TDhw/u8yrFPgd2DQ0NueKKK3rCuX333TdjxozJnnvumd122y1dXV3ZsGFDVq1alaVLl+YPf/hD7rnnnixatCgXXnhhzjnnnJf31/yPa665Jl/72tcyevTofPzjH8+DDz6YhoaGLdbeeuutSZJjjz12s7E999wzhx9+eG677bb84he/yEknnfSK+uqLzs7ydn+NStq0qbr/PgDY3jZtKlf9/cKuoPueqLTb8PQbPKLC3QDAzsc90f/qU2D385//PA0NDenfv3/OOuusvO1tb8vee+/9ko955pln8q1vfStf//rX84UvfCF/8Rd/kb/5m7952Y2OHj06H/rQh/L2t789gwYNyoMPPviitS0tLUmSAw88cIvjEyZMyG233Zbm5uYdEtjtKuzXAgBbx7+dAABsSZ8Cu6uvvjo1NTWZO3duTj755D498d57750LL7wwf/EXf5EPfehDufbaa19RYHf66af3uXbZsmU9PWzJqFGjetWxbdivBQAAAOCV61Ng9+CDD2afffbpc1j3x0455ZRcfvnl+c1vfrPVj3251q17Yc+4QYO2fBhC9/XuOrYN+7UAwNbp3q8FAAD+WJ8Cu+eee+4Vnfi6xx57ZMWKFS/78VurX79+KZfLmx2C8ae69+Nj27BfCwAAAMAr16ejKcaOHZtHHnkkzzzzzFa/wO9///u0tLRk3LhxW/3Yl2vIkBeOAO7o6Nji+Pr1L5zgNXjw4B3WEwAAAAD0RZ8Cu+nTp2fjxo153/vel9/97nd9fvLHH388s2fPTrlczgknnPCym9xa3XvULV++fIvj3XvXddcBAAAAQFH0aUns2WefnV/84hd54IEH8rd/+7c55JBDMnXq1IwbNy4jRozIbrvtlpqamjz//PNpb2/Pk08+mfvvvz+LFi1KZ2dn6uvrc9ZZZ23vv6XHgQcemJaWlrS2tua1r33tZuOtra09dQAAAABQJH0K7AYNGpSrr746n/zkJ/PDH/4wTU1Nuffee1/yMd37w5100kn5l3/5lxc9AGJ7OProo/PDH/4wN910U84444xeY6tWrco999yTAQMG5A1veMMO6wkAAAAA+qJPgV3ywn5vl1xySc4777zccMMNue+++/L73/8+K1asyPr161MqlTJkyJDU1tZm/PjxmTx5ck444YTst99+27P/LTr22GOz77775o477siCBQsya9asJC/sXffRj34069aty9ve9rbU1dXt8N4AAAAA4KX0ObDrNm7cuMyZM2d79LLNDBo0KJdccknOOeecfOpTn8p3v/vdjB07Nvfdd1+WLVuWgw46KBdffHGl2wQAAACAzfTp0Imd0eGHH57vfOc7Of744/OHP/wht99+e4YNG5bZs2fn2muvzdChQyvdIgAAAABspk8z7JqbmzNkyJCMGzdui+OrV6/O1772tfzXf/1XnnzyyQwYMCDjx4/PSSedlLe97W3ZbbfdtmnTSfL+978/73//+1+ypr6+Pl/84he3+WsDAAAAwPbSp8Du1FNPzaGHHppvfvObm4397ne/y1lnnZWnnnqq56CJzs7O/OY3v8mDDz6Y6667Ll/72tey7777btvOAQAAAKAK9XkPu+4w7o9t2LAh73vf+/KHP/whI0eOzDve8Y68+tWvTldXVx588ME0Njbmd7/7Xf7+7/8+P/jBD7bLTDsAAAAAqCZbfejEH/vBD36QJ554Ivvvv38WLFiQESNG9IwdffTReec735mzzz47ixcvztVXX51zzjnnFTcMAAAAANXsFR06cdddd6WmpiYf/OAHe4V13YYNG5bPfe5zqampyU9+8pNX8lIAAAAAsEt4RYFdW1tbkhdOZH0x48aNy4QJE/LEE0+8kpcCAAAAgF3CKwrsumfV1dTUvGRdZ2dnOjs7X8lLAQAAAMAuoc+B3aZNmza7dsQRRyRJ7r333hd93O9///s88cQTTokFAAAAgD7o86ETixcvzpQpU3LAAQfkgAMOSH19fcaOHZvdd989l156aQ499NDNToF95pln8oEPfCDlcjlvfOMbt3XvAAAAAFB1+hTYve51r0tLS0tWr16dBx54IA888ECvZbAPP/xwPv3pT+ff/u3fkiQbNmzIBRdckLvuuisdHR3ZY4898vd///fb5y8AAAAAgCrSp8Du2muvTZI89dRTaW5u7vW/JUuWpFwuZ+jQoT31AwcOzM9//vN0dnZmzz33TENDQ0aNGrV9/gIAAAAAqCJ9XhKbJPvss0/22WefHHPMMT3XOjo60tLS0iuwS5ITTzwxBx54YE4//fTsscce26ZbAAAAAKhyWxXYbcngwYMzefLkza5/7nOfe6VPDQAAAAC7nD6fErs1Ojs7t8fTAgAAAEDV2+rA7qGHHso//dM/Zf369S9ac9JJJ2XOnDl56KGHXlFzAAAAALCr2arA7otf/GJOP/30/OhHP8p99923xZqlS5fm8ccfz09/+tOcfvrp+fKXv7xNGgUAAACAXUGfA7srr7wyX/7yl7Np06aMHj36Ret23333XHjhhRkzZkw2bdqUL37xi/nGN76xTZoFAAAAgGrXp8Du8ccfT0NDQ5LkvPPOy80335wjjzxyi7V77rlnzj333Pz4xz/OmWeema6urlx22WVZsmTJtusaAAAAAKpUnwK7b3/72+ns7Mzb3/72vP/978+AAQP+7GMGDBiQf/7n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AADYRQjskqxbty7f/OY3c+GFF+ass85Kkvz1X/91Vq9enW984xsCOwAAAAB2GEtik6xZsyZvfvObc8wxx/S6PmHChKxcuTLr1q2rUGcAAAAA7GrMsEsyevTofOpTn9rs+m233ZZ99tknu+++ewW6AgAAAGBXZIbdi2hsbMydd96Zc845p9KtAAAAALALEdhtwfe///188pOfzMknn5y3v/3tlW4HAAAAgF2IJbF/4qqrrsq8efMyffr0fPazn610OwAAAADsYgR2f+TTn/50rr322rztbW/Lxz72sZRKJiACAAAAsGMJ7P5HQ0NDrr322syePTvnn39+pdsBAAAAYBclsEvy+OOPZ/78+Zk0aVLe8IY35L//+797jR9yyCHp39//VQAAAABsfzttCvX444/n1FNPzWmnnZaPfexjW6x57LHHcsUVV6SpqSkrVqzI6NGjc+KJJ+bcc8/N7rvv3lN32223ZdOmTXnggQcya9aszZ7nrrvuyogRI7bb3wIAAAAA3XbKwK6trS2zZ89OR0fHi9Y88MADOfPMM7Nu3bpMmjQpBx98cO69995ceeWVue222/Ktb30rQ4cOTZL8/d//ff7+7/9+u/Xbv7+98IDK6dev1PNf70cAwK7KPRGwM9npAruHH344559/fp544okXrens7MxFF12UdevW5TOf+Uze8pa3JEnWr1+fCy+8MLfeemvmzZv3ojPztqVSqSZ77jlku78OwItZsWJQkmTYsEHejwCAXZZ7ImBnstMEdqtXr85VV12Va665Jhs2bMjYsWPz5JNPbrF24cKFWbJkSY488siesC5JBg0alLlz52batGm57rrrcv7552ePPfbYrn2Xy11Zs2bddn0NgJeydu36nv+uWvVchbsBAKgM90RApQ0fPrhntu+fs9MEdtdcc02+9rWvZfTo0fn4xz+eBx98MA0NDVusvfXWW5Mkxx577GZje+65Zw4//PDcdttt+cUvfpGTTjppu/adJJ2d5e3+GgAvZtOmcs9/vR8BALsq90TAzmSnWbg/evTofOhDH8pNN92UadOmvWRtS0tLkuTAAw/c4viECROSJM3Nzdu2SQAAAAB4hXaaGXann356n2uXLVuWJNl77723OD5q1KhedQAAAABQFDvNDLutsW7dC3vGDRo0aIvj3de76wAAAACgKKoysOvXr1+SpKam5iXr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8vKy6h8XF6cJEyaoT58+mjp1qhYsWKCNGzfqhx9+kJubm9q1a6cRI0aoffv2ljHh4eFW+9T96U9/klQ+02758uWaN2+e5s+fr6eeekqrV6+2er0bN27os88+07p163TixAk5Ozurc+fOdw0qJWnr1q2KjY3Vd999p4KCAtWvX18dO3bU8OHD1bp160r9g4ODJUnffvutdu3apWXLlik9PV0lJSUKCAjQgAEDNHjwYDk5OVUaW1xcrH/+85+Kj49XZmamCgsL5evrq65du2rUqFF67LHHKo05fPiwlixZopSUFF28eFHu7u4KCQnRoEGDFBERcdfne5j27dun5cuXa//+/crPz1fdunUVGhqqIUOGqFOnTpZ+hYWFeuaZZ1RUVKT58+erV69eNu/38ssva8+ePRo9erTVUuyLFy9q8eLF2rFjh86cOSMHBwe1aNFCffv21eDBg1W7du2qflQAAFCNCOwAAECNsGfPHkmSo6Ojnn766Xsa07lzZ5vXjxw5ohEjRignJ0cODg4KDAxUrVq1dPToUS1evFhr167VvHnzFBYWVmnslStX9Ic//EEZGRny8vJSy5YtdezYMW3fvl27du1STEyMunfvLkkKCQmRt7e39u/fL0kKCgpSnTp1FBQUdMe6r1y5osjISB04cECS1LJlSzk4OGjTpk3auXOn/P39bY67efOm/vznPys+Pl6S1LBhQwUHB+v06dNKSEjQxo0b9dZbb+mll16yOX7OnDlavHix3Nzc1Lx5c+Xk5Cg9PV3p6en65ptvNHv2bKv+OTk5Gj16tGXJcfPmzeXj46PMzEwtX75cmzZt0v/93//Jz8/PMmblypWaOnWqSktL5ebmpscff1z5+flKTk5WcnKy+vXrpw8++ECOjo53fI8ehhkzZmjhwoWSJE9PTwUFBSknJ0eJiYlKTEzUiBEjNH78eEmSu7u7nnvuOcXFxemLL76wGdidP39ee/fulSQ9//zzlutpaWmKiopSfn6+nJyc5O/vr7KyMh06dEgHDx7U+vXrtWjRIpvhJgAAeDSxJBYAANQImZmZkiQ/Pz/VqVPnge9z9epVS1jXrl07bdmyRQkJCVq3bp127typHj166PLlyxozZoyys7MrjU9OTtalS5f0j3/8Q0lJSfr888+VmJio4OBglZaWWoVac+fOtZo59/bbb2v16tV655137ljj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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 35
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.691994Z",
     "start_time": "2025-05-05T16:54:57.690718Z"
    }
   },
   "source": [],
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-05T16:54:57.701193Z",
     "start_time": "2025-05-05T16:54:57.699907Z"
    }
   },
   "source": [],
   "outputs": [],
   "execution_count": null
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
